#!/bin/bash

# 检查是否提供了进程名称作为参数
if [ $# -ne 1 ]; then
    echo "用法: $0 <进程名称>"
    exit 1
fi

# 要查找和终止的进程名称
target_name="$1"

# 遍历/proc目录下的子目录，每个子目录代表一个进程
for pid in /proc/*/; do
    if [ -d "$pid" ]; then
        # 检查是否存在status文件
        status_file="$pid/status"
        if [ -e "$status_file" ]; then
            # 从/proc/[pid]/status文件中提取进程名字
            process_name=$(awk -F: '/Name/{print $2}' "$status_file")
            process_pid=$(basename "$pid")

            # 检查进程名字是否匹配目标名称
            trimmed_process_name=$(echo "$process_name" | awk '{$1=$1};1')
            if [ "$trimmed_process_name" = "$target_name" ]; then
                echo "找到进程号 $process_pid，名字为 $process_name，将终止它。"
                # 终止进程
                kill -9 "$process_pid"
            fi
        else
            echo "未找到 $status_file 文件"
        fi
    fi
done
